The present invention is related to the field of data networks, and more particularly to the operation of routing protocols used in data networks.
In data networks, routing protocols are used to provide for timely and efficient routing of user messages, such as user data packets. In general, the routing involves maintaining a model of the topology of the network, which can change dynamically, and choosing paths for routing messages in a manner that takes into consideration several criteria or overall goals for network operation. The criteria generally include, for example, minimizing the number of different network nodes that a message must traverse, minimizing overall delay of a message, avoiding points of congestion or outage in the network, etc.
It is important that the devices that carry out routing protocols, referred to as “routers” herein, receive information from a variety of points in the network, to maintain an accurate model of the network and thereby maximize routing efficiency. This information exchange is accomplished using a set of routing protocol messages. For example, distributed routing protocols such as the Intermediate System to Intermediate System (IS—IS) and Open Shortest Path First (OSPF) protocols employ neighbor discovery packets and link state packets (LSPs) to convey information from one router to another. Each router uses information in these packets to maintain a local routing database, calculates routes for user data messages based on the information in the routing database, and forwards the user messages along the calculated routes.
Within the routing database, different network segments are identified using distinct identifiers, and the information related to each segment is stored in association with that segment identifier. In some protocols, each network segment can be associated with a particular router, and therefore an identifier of the router can serve as an identifier of the segment. To maintain an accurate network model in the routing database, it is important that identifiers be uniquely assigned to segments or routers. If an identifier is used to identify two different routers in the network, for example, then it is possible that the information in the routing database for either or both of these routers is not accurate at any given time. In such a case, routing performance can suffer, and therefore overall performance of the network can suffer.
Administratively assigned Equipment Unique Identifiers (EUIs) have been used to uniquely identify routers in network protocol messages. Examples include 48-bit EUIs referred to as “EUI-48 identifiers”, and more recently 64-bit EUIs referred to as “EUI-64 identifiers”. An EUI-48 identifier is divided into two fields. An upper 24 bit field holds a value that uniquely identifies an equipment manufacturer on a global basis. The lower 24 bit field is an index into a block of identifiers that can be used by each manufacturer. Assuming that the administrative processes for assigning these identifiers are followed correctly, it is guaranteed that any single EUI-48 identifier is unique on a global basis. Hence, in a network in which EUI-48 identifiers have been assigned to the routers, the EUI-48 identifiers can be used reliably as unique router identifiers.
Reliance upon pre-assigned identifiers such as EUI-48 identifiers may be undesirable in some cases, however. There is cost associated with the administrative bookkeeping required to guarantee uniqueness, and mistakes in the assignment of identifiers are sometimes made. In many cases there is no well-defined process for detecting and correcting the erroneous duplication of identifiers. And in some cases, pre-assigned identifiers may not have been made available for use by network components such as routers.